import store from '@/store'
import router from './router'
router.beforeEach(async(to, from, next) => {
  const token = store.getters.token
  const pass = ['/login', '/404', '/text']
  // 1.有token，去登录页，跳到首页
  // 2.有token，不是去登录页，放行
  // 3.没有token，去白名单，放行
  // 4.没有token，不去白名单，跳到登录页面
  if (token) {
    if (to.path === '/login') next('/')
    else {
      // 在这里一次性处理用户信息请求
      if (!store.getters.userId) {
        await store.dispatch('user/getUserInfo')
        const res = await store.dispatch('permission/filterRoutes', store.getters.menus)
        // 使用路由内置的方法添加动态路由
        router.addRoutes([...res, // 404 page must be placed at the end !!!
          { path: '*', redirect: '/404', hidden: true }
        ])
        next(to.path)
      } else next()
    }
  } else {
    if (pass.includes(to.path)) next()
    else next('/login')
  }
})
